package awk.designModel.singleton;

/**
 * 静态内部类方式： 饿汉式和懒汉式的组合，调用getInstance()方法时才创建，达到了类似懒汉式的效果，同时又是线程安全的
 *
 * @author cui_yonghua  https://blog.csdn.net/cui_yonghua/article/details/90512943
 */
public class StaticClassC {

	//1.私有化构造方法，使得在类的外部不能调用此方法，限制产生多个对象
	private StaticClassC() {
	}

	//2.在类的内部创建一个类的实例
	private static class Holder {

		private static StaticClassC instance = new StaticClassC();
	}

	//3.对外部提供调用方法：将创建的对象返回，只能通过类来调用
	public static StaticClassC getInstance() {
		return Holder.instance;
	}

	//测试
	public static void main(String[] args) {
		StaticClassC a = StaticClassC.getInstance();
		StaticClassC b = StaticClassC.getInstance();
		System.out.println(a == b);
	}
}

